home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2000 June / Internet Magazine June 2000.iso / pc / software / windows / building / wirefusion / html / multilayer / bob15.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-01-03  |  3.3 KB  |  249 lines

  1. import java.awt.Event;
  2. import java.awt.Image;
  3. import java.awt.MediaTracker;
  4. import java.awt.Rectangle;
  5. import java.awt.image.PixelGrabber;
  6. import java.io.DataInputStream;
  7.  
  8. public class bob15 extends bob {
  9.    public String imageName;
  10.    // $FF: renamed from: iw int
  11.    int field_0;
  12.    // $FF: renamed from: ih int
  13.    int field_1;
  14.    public boolean fitSize;
  15.    public boolean drawAtStartup;
  16.    int[] sourcePix;
  17.    int gwid;
  18.    int gheg;
  19.  
  20.    public void cip() {
  21.       try {
  22.          super.m.p(true);
  23.          if (this.sourcePix == null) {
  24.             MediaTracker var1 = new MediaTracker(super.a);
  25.             Image var2 = super.a.getImage(super.a.getCodeBase(), this.imageName);
  26.             var1.addImage(var2, 0);
  27.             var1.waitForID(0);
  28.             this.field_0 = var2.getWidth(super.a);
  29.             this.field_1 = var2.getHeight(super.a);
  30.             this.sourcePix = new int[this.field_0 * this.field_1];
  31.             PixelGrabber var3 = new PixelGrabber(var2, 0, 0, this.field_0, this.field_1, this.sourcePix, 0, this.field_0);
  32.             var3.grabPixels();
  33.             this.gwid = ((bob)this).gw();
  34.             this.gheg = ((bob)this).gh();
  35.          }
  36.  
  37.          super.m.p(false);
  38.       } catch (Exception var4) {
  39.       }
  40.  
  41.    }
  42.  
  43.    // $FF: renamed from: i () void
  44.    public void method_0() {
  45.       if (this.drawAtStartup) {
  46.          ((bob)this).sl(1, 6000);
  47.       }
  48.  
  49.    }
  50.  
  51.    // $FF: renamed from: ap () void
  52.    public void method_1() {
  53.       if (this.sourcePix == null) {
  54.          this.cip();
  55.       }
  56.  
  57.       int[] var1 = ((bob)this).gp();
  58.       if (!this.fitSize && super.r % (double)360 == (double)0) {
  59.          Rectangle var43 = super.tr.intersection(new Rectangle(0, 0, this.gwid, this.gheg));
  60.          int var44 = (var43.y - super.tr.y) * this.field_0;
  61.  
  62.          for(int var46 = var43.y; var46 < var43.y + var43.height; ++var46) {
  63.             int var47 = var43.x - super.tr.x;
  64.             int var48 = var46 * this.gwid;
  65.             if (var44 < this.field_1 * this.field_0) {
  66.                for(int var49 = var43.x; var49 < var43.x + var43.width; ++var49) {
  67.                   if (var47 < this.field_0 && this.sourcePix[var47 + var44] <= -1) {
  68.                      var1[var49 + var48] = this.sourcePix[var47 + var44];
  69.                   }
  70.  
  71.                   ++var47;
  72.                }
  73.             }
  74.  
  75.             var44 += this.field_0;
  76.          }
  77.       } else {
  78.          int[] var2 = new int[4];
  79.          int[] var3 = new int[4];
  80.          int var4 = 0;
  81.          int var5 = 16777215;
  82.          int var6 = -16777215;
  83.          int var7 = super.tr.width << 10;
  84.          int var8 = super.tr.height << 10;
  85.          double var9 = Math.cos(super.r * (Math.PI / 180D));
  86.          double var11 = Math.sin(super.r * (Math.PI / 180D));
  87.          int var13 = (int)((double)var7 * var9);
  88.          int var14 = (int)((double)var7 * var11);
  89.          int var15 = (int)((double)var8 * var9);
  90.          int var16 = (int)((double)var8 * var11);
  91.  
  92.          for(int var17 = 0; var17 < 4; ++var17) {
  93.             if (var17 != 0 && var17 != 3) {
  94.                var2[var17] = var13;
  95.                var3[var17] = -var14;
  96.             } else {
  97.                var2[var17] = -var13;
  98.                var3[var17] = var14;
  99.             }
  100.  
  101.             if (var17 < 2) {
  102.                var2[var17] -= var16;
  103.                var3[var17] -= var15;
  104.             } else {
  105.                var2[var17] += var16;
  106.                var3[var17] += var15;
  107.             }
  108.  
  109.             var2[var17] = (var2[var17] + var7 >> 11) + super.tr.x;
  110.             var3[var17] = (var3[var17] + var8 >> 11) + super.tr.y;
  111.             if (var3[var17] < var5) {
  112.                var4 = var17;
  113.                var5 = var3[var17];
  114.             }
  115.  
  116.             if (var3[var17] > var6) {
  117.                var6 = var3[var17];
  118.             }
  119.          }
  120.  
  121.          int var18 = (this.fitSize ? this.field_0 : super.tr.width) - 1;
  122.          int var19 = (this.fitSize ? this.field_1 : super.tr.height) - 1;
  123.          int[] var20 = new int[]{0, var18, var18, 0};
  124.          int[] var21 = new int[]{0, 0, var19, var19};
  125.          int var24 = var4;
  126.          int var22 = var4;
  127.          int var30 = 0;
  128.          int var28 = 0;
  129.          int var29 = 0;
  130.          int var27 = 0;
  131.          int var26 = 0;
  132.          int var25 = 0;
  133.          var8 = Math.max(super.tr.height, this.field_1);
  134.          int[] var31 = new int[var8];
  135.  
  136.          for(int var32 = 0; var32 < var8; ++var32) {
  137.             if (var32 >= this.field_0 * this.field_1) {
  138.                var31[var32] = (this.field_1 - 1) * this.field_0;
  139.             } else {
  140.                var31[var32] = var32 * this.field_0;
  141.             }
  142.          }
  143.  
  144.          int var33 = var5 * this.gwid;
  145.          if (var6 > this.gheg) {
  146.             var6 = this.gheg;
  147.          }
  148.  
  149.          for(int var34 = var5; var34 < var6; var33 += this.gwid) {
  150.             if (var3[var22] == var34) {
  151.                do {
  152.                   var4 = var22--;
  153.                   if (var22 == -1) {
  154.                      var22 = 3;
  155.                   }
  156.                } while(var3[var22] == var34);
  157.  
  158.                var13 = var2[var4] << 16;
  159.                var14 = (var2[var22] - var2[var4] << 16) / (var3[var22] - var3[var4]);
  160.                var7 = var20[var4] << 16;
  161.                var8 = var21[var4] << 16;
  162.                var25 = (var20[var22] - var20[var4] << 16) / (var3[var22] - var3[var4]);
  163.                var26 = (var21[var22] - var21[var4] << 16) / (var3[var22] - var3[var4]);
  164.             }
  165.  
  166.             if (var3[var24] == var34) {
  167.                int var23;
  168.                do {
  169.                   var23 = var24++;
  170.                   if (var24 == 4) {
  171.                      var24 = 0;
  172.                   }
  173.                } while(var3[var24] == var34);
  174.  
  175.                var15 = var2[var23] << 16;
  176.                var16 = (var2[var24] - var2[var23] << 16) / (var3[var24] - var3[var23]);
  177.                var27 = var20[var23] << 16;
  178.                var28 = var21[var23] << 16;
  179.                var29 = (var20[var24] - var20[var23] << 16) / (var3[var24] - var3[var23]);
  180.                var30 = (var21[var24] - var21[var23] << 16) / (var3[var24] - var3[var23]);
  181.             }
  182.  
  183.             if (var34 >= 0) {
  184.                int var35 = var13 >> 16;
  185.                int var36 = var15 >> 16;
  186.                if (var35 < var36) {
  187.                   int var37 = var7;
  188.                   int var38 = (var27 - var7) / (var36 - var35);
  189.                   int var39 = var8;
  190.                   int var40 = (var28 - var8) / (var36 - var35);
  191.                   if (var35 < 0) {
  192.                      var37 = var7 - var38 * var35;
  193.                      var39 = var8 - var40 * var35;
  194.                      var35 = 0;
  195.                   }
  196.  
  197.                   if (var36 > this.gwid) {
  198.                      var36 = this.gwid;
  199.                   }
  200.  
  201.                   for(int var41 = var35 < 0 ? 0 : var35; var41 < var36; ++var41) {
  202.                      if (var37 >> 16 < this.field_0 && var39 >> 16 < this.field_1) {
  203.                         int var42 = this.sourcePix[(var37 >> 16) + var31[var39 >> 16]];
  204.                         if (var42 <= -1) {
  205.                            var1[var41 + var33] = var42;
  206.                         }
  207.                      }
  208.  
  209.                      var37 += var38;
  210.                      var39 += var40;
  211.                   }
  212.                }
  213.             }
  214.  
  215.             var8 += var26;
  216.             var28 += var30;
  217.             var13 += var14;
  218.             var15 += var16;
  219.             var7 += var25;
  220.             var27 += var29;
  221.             ++var34;
  222.          }
  223.       }
  224.  
  225.    }
  226.  
  227.    // $FF: renamed from: he (java.awt.Event) void
  228.    public void method_2(Event var1) {
  229.       super.he(var1);
  230.       if (var1.id == 6000) {
  231.          this.method_1();
  232.       } else if (var1.id == 1) {
  233.          super.r = ((bob10)var1.arg).value;
  234.       }
  235.  
  236.    }
  237.  
  238.    // $FF: renamed from: rd (java.io.DataInputStream) void
  239.    public void method_3(DataInputStream var1) {
  240.       try {
  241.          this.imageName = var1.readUTF();
  242.          this.fitSize = var1.readBoolean();
  243.          this.drawAtStartup = var1.readBoolean();
  244.       } catch (Exception var3) {
  245.       }
  246.  
  247.    }
  248. }
  249.